package cm.aoplog.annotations;

import cm.aoplog.enums.OperateTypeEnum;

import java.lang.annotation.*;

/**
 * @author: yxh
 * @Description: 日志注释
 * @Date: Created in 2022/9/13 10:34
 * @Modified By:
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface OperateLog {
    /**
     * 模块
     */
    String module() default "";


    String name() default "";

    /**
     * 操作分类
     * <p>
     * 实际并不是数组，因为枚举不能设置 null 作为默认值
     */
    OperateTypeEnum[] type() default {};

    /**
     * 是否记录日志
     * @return
     */
    boolean enable() default true;

    /**
     * 是否记录方法参数
     * @return
     */
    boolean logArgs() default true;

    /**
     * 是否记录返回数据
     * @return
     */
    boolean logResultData() default true;

}
